package com.cn.lp.ai.factory.domain.embedding;

import com.cn.lp.ai.embedding.AiEmbeddingService;
import com.cn.lp.ai.embedding.AiEmbeddingServiceHandler;
import com.cn.lp.ai.factory.AiFactoryType;
import com.cn.lp.common.utils.BlankAide;
import jakarta.annotation.PostConstruct;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

import java.util.*;

@Component
public class LpAiEmbeddingServiceHandler implements AiEmbeddingServiceHandler {

    @Autowired
    private List<AiEmbeddingService> aiEmbeddingServiceList = new ArrayList<>();

    private Map<AiFactoryType, AiEmbeddingService> serviceMap = new HashMap<>();

    @PostConstruct
    protected void init() {
        if(BlankAide.isNotBlank(aiEmbeddingServiceList)) {
            for (AiEmbeddingService aiEmbeddingService : aiEmbeddingServiceList) {
                serviceMap.put(aiEmbeddingService.getFactoryType(), aiEmbeddingService);
            }
        }
    }

    public Optional<AiEmbeddingService> getByFactory(AiFactoryType factoryType) {
        return Optional.ofNullable(serviceMap.get(factoryType));
    }

}
